#!/bin/bash

# 被比较的文件名,公司电脑就写.ideavimrcCompany，自己电脑就写.ideavimrc
#file_name=".ideavimrc"
file_name=".ideavimrcCompany"
# file_name=".ideavimrc"

user_name="pc"

# 定义日志文件的路
# 获取Windows用户名
# shell 脚本中不要使用cmd.exe, 程序可能会找不到
#win_user=$(cmd.exe /C "echo %USERNAME%" | tr -d '\r')
# windows下的用户路径
IDEAVIMRCPATH="/mnt/c/Users/$user_name"
# 日志路径
LOGFILE="$IDEAVIMRCPATH/ideavim-auto-commit/script.log"


# 启动日志记录
echo "Starting script at $(date)" > "$LOGFILE"

# 切换到 Git 仓库目录
cd "$IDEAVIMRCPATH/ideavim-auto-commit" || {
    echo "Failed to change directory to the repository" >> "$LOGFILE"
    exit 1
}

# 确保 git 命令可用
PATH="$PATH:/usr/bin/git"

# 检查 .ideavimrc 文件是否存在
if [ ! -e "$IDEAVIMRCPATH/.ideavimrc" ]; then
    echo ".ideavimrc file does not exist" >> "$LOGFILE"
    exit 1
fi

# 检查 .ideavimrc 文件内容是否有变化
if ! cmp -s "$IDEAVIMRCPATH/.ideavimrc" "$file_name"; then
    # 只有在文件不同时才复制
    echo "Updating .ideavimrc in the repository..." >> "$LOGFILE"
    cp -f "$IDEAVIMRCPATH/.ideavimrc" "$file_name" >> "$LOGFILE" 2>&1 || {
        echo "Failed to copy .ideavimrc file" >> "$LOGFILE"
        exit 1
    }

    # 添加所有修改和新文件
    git add -A >> "$LOGFILE" 2>&1 || {
        echo "Failed to add files" >> "$LOGFILE"
        exit 1
    }

    # 提交变更
    git commit -m "Scheduled commit" >> "$LOGFILE" 2>&1 || {
        echo "Failed to commit changes" >> "$LOGFILE"
        exit 1
    }

    # 推送到远程仓库
    git push >> "$LOGFILE" 2>&1 || {
        echo "Failed to push changes" >> "$LOGFILE"
        exit 1
    }
else
    echo "No changes in .ideavimrc to update" >> "$LOGFILE"
fi

# 记录脚本结束时间
echo "Script ended at $(date)" >> "$LOGFILE"
